<?php
require("DBOperations.php");

class UserForRegistration
{

	private $user_id;
	private $user_name;
	private $email;
	private $password;
	private $born_date;
	private $gender;
	
	private $db;
	
	public function __construct($user_name="", $password="", $email="", $born_day="", $born_month="", $born_year="", $gender="")
	{
		$user_name = addslashes($user_name);
		$this->user_name = trim($user_name);
		$password = addslashes($password);
		$this->password = trim($password);
		$email = addslashes($email);
		$this->email = addslashes($email);
		$this->born_date = "$born_year-$born_month-$born_day";
		$this->gender = $gender;
		$this->db = new DBOperations();
	}
	
	public function validate_user_name()
	{
		if(strlen($this->user_name) < 1)
		{
			return "<font color=\"red\">Не сте въвели потребителско име!</font>";
		}
		if(!(preg_match('/^[a-zA-Z]/', $this->user_name)))
		{
			return "<font color=\"red\">Потребителското име не отговаря на изискванията!</font>";
		}
		if(!(preg_match('/^[a-zA-Z0-9_.-]+$/', $this->user_name)))
		{
			return "<font color=\"red\">Потребителското име не отговаря на изискванията!</font>";
		}
		if(strlen($this->user_name) < 3 || strlen($this->user_name) > 30)
		{
			return "<font color=\"red\">Потребителското име не отговаря на изискванията!</font>";
		}
		if($this->db->does_user_name_exist($this->user_name) > 0 )
		{
			return "<font color=\"red\">Потребителското име е заето!</font>";
		}
		return true;
	}
	
	public function validate_password()
	{
		if(strlen($this->password) < 1)
		{
			return "<font color=\"red\">Не сте въвели парола!</font>";
		}
		for ($i = 0; $i < strlen($this->password); $i++)
		{
			$ascii = ord($this->password[$i]);
			if ($ascii < 33 || $ascii > 126)
			{
				return "<font color=\"red\">Паролата не отговаря на изискванията!</font>";
			}
		}
		if(strlen($this->password) < 6 || strlen($this->password) > 30)
		{
			return "<font color=\"red\">Паролата не отговаря на изискванията!</font>";
		}
		return true;
	}
	
	public function validate_email()
	{
		if(strlen($this->email) < 1)
		{
			return "<font color=\"red\">Не сте въвели e-mail!</font>";
		}
		if(!(preg_match("^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})$^",$this->email)))
		{
			return "<font color=\"red\">E-mail адреса е невалиден!</font>";
		}
		if($this->db->does_email_exist($this->email) > 0 )
		{
			return "<font color=\"red\">E-mail адреса вече се използва!</font>";
		}
		return true;
	}
	
	public function getUser_id() 
	{
		return $this->user_id; 
	} 
	public function getUser_name() 
	{ 
		return $this->user_name; 
	} 
	public function getEmail() 
	{
		return $this->email; 
	} 
	public function getPassword() 
	{
		return $this->password; 
	} 
	public function getBorn_date() 
	{
		return $this->born_date; 
	} 
	public function getGender() 
	{
		return $this->gender; 
	}
	public function setUser_id($x) 
	{
		$this->user_id = $x; 
	} 
	public function setUser_name($x) 
	{
		$this->user_name = $x; 
	} 
	public function setEmail($x) 
	{
		$this->email = $x; 
	} 
	public function setPassword($x) 
	{
		$this->password = $x; 
	} 
	public function setBorn_date($x) 
	{
		$this->born_date = $x; 
	} 
	public function setGender($x) 
	{
		$this->gender = $x; 
	}
}
?>